package retrofitdemo.com.night;

import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;

import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.viewpager.widget.ViewPager;

import com.zzhoujay.richtext.RichText;

import retrofitdemo.com.night.activity.BaseActivity;
import retrofitdemo.com.night.adapter.BaseFragmentAdapter;
import retrofitdemo.com.night.databinding.ActivityMainBinding;
import retrofitdemo.com.night.fragment.FirstFragment;
import retrofitdemo.com.night.fragment.SecondFragment;
import retrofitdemo.com.night.utils.PermissionUtil;
import retrofitdemo.com.night.utils.SPUtil;

import static retrofitdemo.com.night.bean.ApiService.LOGINPRESSION;
import static retrofitdemo.com.night.bean.ApiService.REQEEST_CDOE_GPS;

public class MainActivity extends BaseActivity implements ViewPager.OnPageChangeListener {

    ActivityMainBinding binding;
    Fragment[] fragments = new Fragment[2];

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
        binding.setActivity(this);
        initView();
    }

    private void initView() {
        SPUtil.put(MainActivity.this,"module_login","yes");

        fragments[0] = new FirstFragment();
        fragments[1] = new SecondFragment();

        BaseFragmentAdapter fragmentAdapter = new BaseFragmentAdapter(getSupportFragmentManager());
        fragmentAdapter.addData(fragments);
        binding.viewPager.setAdapter(fragmentAdapter);
        binding.viewPager.setCurrentItem(0);
        setTitleText("首页");
        binding.viewPager.addOnPageChangeListener(this);

        setLeftVis();
        initPermission();

        binding.llModuleSecond.setOnClickListener(this);
        binding.llModuleFirst.setOnClickListener(this);
    }

    private void initPermission() {
        if (PermissionUtil.loginPermission(this, LOGINPRESSION)) {
            if (!PermissionUtil.isOPen(MainActivity.this)) {
                Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                startActivityForResult(intent, REQEEST_CDOE_GPS);
            } else {
                initLocation();
            }
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode) {
            case LOGINPRESSION:
                initGPS();
                break;
            case REQEEST_CDOE_GPS:
                initLocation();
                break;
            default:
        }
    }

    public void initGPS() {
        if (!PermissionUtil.isOPen(this)) {
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            startActivityForResult(intent, REQEEST_CDOE_GPS);
        } else {
            initLocation();
        }
    }

    private void initLocation() {

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        RichText.clear(this);
    }

    @Override
    public void onClick(View view) {
        int id = view.getId();
        if (id == R.id.llModuleFirst) {
            setTitleText("首页");
            binding.viewPager.setCurrentItem(0);
            binding.tvModuleFirst.setTextColor(getResources().getColor(R.color.main_color));
            binding.tvModuleSecond.setTextColor(getResources().getColor(R.color.black));
        }else if(id == R.id.llModuleSecond){
            setTitleText("我的");
            binding.viewPager.setCurrentItem(1);
            binding.tvModuleFirst.setTextColor(getResources().getColor(R.color.black));
            binding.tvModuleSecond.setTextColor(getResources().getColor(R.color.main_color));
        }
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }

    /**
     * RichText.initCacheDir(this);
     * RichText
     *        .from(text) // 数据源
     *        .type(RichText.TYPE_MARKDOWN) // 数据格式,不设置默认是Html,使用fromMarkdown的默认是Markdown格式
     *        .autoFix(true) // 是否自动修复，默认true
     *        .autoPlay(true) // gif图片是否自动播放
     *        .showBorder(true) // 是否显示图片边框
     *        .borderColor(Color.RED) // 图片边框颜色
     *        .borderSize(10) // 边框尺寸
     *        .borderRadius(50) // 图片边框圆角弧度
     *        .scaleType(ImageHolder.ScaleType.FIT_CENTER) // 图片缩放方式
     *        .size(ImageHolder.MATCH_PARENT, ImageHolder.WRAP_CONTENT) // 图片占位区域的宽高
     *        .fix(imageFixCallback) // 设置自定义修复图片宽高
     *        .fixLink(linkFixCallback) // 设置链接自定义回调
     *        .noImage(true) // 不显示并且不加载图片
     *        .resetSize(false) // 默认false，是否忽略img标签中的宽高尺寸（只在img标签中存在宽高时才有效）
     *        true：忽略标签中的尺寸并触发SIZE_READY回调，false：使用img标签中的宽高尺寸，不触发SIZE_READY回调
     *        .clickable(true) // 是否可点击，默认只有设置了点击监听才可点击
     *        .imageClick(onImageClickListener) // 设置图片点击回调
     *        .imageLongClick(onImageLongClickListener) // 设置图片长按回调
     *        .urlClick(onURLClickListener) // 设置链接点击回调
     *        .urlLongClick(onUrlLongClickListener) // 设置链接长按回调
     *        .placeHolder(placeHolder) // 设置加载中显示的占位图
     *        .error(errorImage) // 设置加载失败的错误图
     *        .cache(Cache.ALL) // 缓存类型，默认为Cache.ALL（缓存图片和图片大小信息和文本样式信息）
     *        .imageGetter(yourImageGetter) // 设置图片加载器，默认为DefaultImageGetter，使用okhttp实现
     *        .imageDownloader(yourImageDownloader) // 设置DefaultImageGetter的图片下载器
     *        .bind(tag) // 绑定richText对象到某个object上，方便后面的清理
     *        .done(callback) // 解析完成回调
     *        .into(textView); // 设置目标TextView
     * ————————————————
     * 版权声明：本文为CSDN博主「吕氏春秋i」的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。
     * 原文链接：https://blog.csdn.net/Life_s/article/details/80706940
     */
}
